const fs = require('fs');
const path = require('path')
const WriteStream = require('./6.手写writeStream');
const ws  = fs.createWriteStream(path.resolve(__dirname,'b.txt'),{
    //  可读流的highWaterMark 每次读取多少个   可写流： 我期望每次能写入多少
    highWaterMark:3,// 默认值是16k
    flags:'w',
    encoding:'utf8',
    start:0,//开始写入的位置，没有end
    emitClose:true,//是否触发close
    
})
// 我期望 用3个内存大小的字节 来进行整个写入的操作 

let i = 0  //0-9

function write(){
    let flag = true
    while(flag&&i<=9){
        flag = ws.write(i++ +'','utf8',()=>{
            console.log(i,'写入成功');
        })// 当写入的时候达到了预期的时候 此时flag 就会变为false
        // console.log(flag);
    }
    if(i>9){
        ws.end('ok')
    }
}
write()

// drain事件只有当达到预期值 (并且消耗掉)的时候才能触发
ws.on('drain',()=>{ // 等待内存全部写入到文件中后，会触发drain. 
    console.log('drain')
    write();
})

